//-----------------------------------------------------------------------------
// Name: BulletManager.cpp
// Auth: Dante Ratto
// Desc: Keeps a list of AnimateObjects
//-----------------------------------------------------------------------------

#ifndef _ANIMATEOBJECTMANAGER_
#define _ANIMATEOBJECTMANAGER_

#include "SharedConstants.h"
#include "AnimateObject.h"
#include <list>
#include <vector>

using std::list;
using std::vector;

//-----------------------------------------------------------------------------
// cAnimateObjectManager:
//-----------------------------------------------------------------------------
class cAnimateObjectManager
{
public:
	// Constructors:
	cAnimateObjectManager();
	~cAnimateObjectManager();

	// list:
	list<cAnimateObject> liBossObjects;
	//list<cAnimateObject>::iterator itAnimateObject;

	vector<list<cAnimateObject > > vAnimateLists;

	// cAnimateObjectManager Methods:
	
	//-----------------------------------------------------------------------------
	void AddAnimateObject(enum eObjectType, float, float, float, float, int);
	// Desc:

	//-----------------------------------------------------------------------------
	void RemoveAnimateObject(float, int);
	// Desc:
	
	void UpdateAnimateBossObjects(float);
	void BossAnimateAI(float);
	void AddBoss();
	void AddBossSpawn(float, float);

	//-----------------------------------------------------------------------------
	void UpdateAnimateObject(float, int);
	// Desc:

	//-----------------------------------------------------------------------------
	void UpdateHealth();
	// Desc: A test function to kill AnimateObjects

	void AnimateAI(int);
	bool CheckVictory();
	void CreateVector();
	void AddTypeToArea(enum eObjectType eType, int area);
	list<cAnimateObject>* GetBossList();
	vector<list<cAnimateObject>>* GetAnimateVector();
	list<cAnimateObject> GetParticularList(int);
	bool GetmZombies();
	void SetBoss(bool);
	bool GetBoss();

	bool GetBossSetup();
	void SetBossSetup(bool);

private:

	bool mZombies;
	bool mBoss;
	bool mBossSetup;

	int mBossPoint;
};
cAnimateObjectManager* GetAnimateObjectManager();
#endif
